<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class f_pedido extends CI_Controller {
    private $sessao;

    function __construct(){
        parent::__construct();
        $this->load->model("ProdutoModel");
        $this->load->model("PedidoModel");
        $this->load->model("Log");
        $this->load->model("StatusModel");
        $this->load->helper("form");
        $this->load->library("form_validation");
        $this->load->model("Selects");

        //Verifica se está logado
        $this->load->helper("auth");
        $this->sessao = f_logado();
    }

    public function index($mensagem = ""){
        $this->load->helper("form");
        //mostra carrinho atual
        $pedidos = $this->Selects->getPedidoProdutosUsuarioAndamentoByFornecedor($this->sessao->idFornecedor,
                timestamp_time($this->input->post("datamin")),timestamp_time($this->input->post("datamax")));
        if( $pedidos != false) :
            $lista = "";
            $itemAntigo = "";
            $total = 0;
            $linha = 0;
            $idProdutos = "";
            $statusTotal = "";
            $options = array(
                  'andamento'  => 'em andamento',
                  'enviado'    => 'enviado',
                );
            $options_total = array(
                  '0'  => '--Selecione--',
                  'enviado'    => 'enviado'
                );
            $options_enviado = array(
                  'enviado'    => 'enviado',
                );

            foreach($pedidos->result() as $campo => $item) {
                if($item->idPedido != $itemAntigo){
                    //fim da tabela
                    if($campo != 0){
                        if ($linha == 0)
                            $lista .= "<tr class=\"impar\">\n\t\t";
                        else
                            $lista .= "<tr>\n\t\t";
                        $lista.="<td>Total</td> <td></td> <td></td> <td>". preco_imprime($total)."</td>\n\t
                            <td><form action=\"".site_url("fornecedor/f_pedido/mudarStatus/$itemAntigo/fornecedor_0"). "\" method=\"post\">";
                        $lista.= form_dropdown("status", $options_total,"0" ,"onchange=\"this.form.submit();\"");
                        $lista .="<input type=\"hidden\" name=\"idProdutos\" value=\"$idProdutos\" />";
                        $lista .="<input type=\"hidden\" name=\"statusProdutos\" value=\"$statusProdutos\" />
                                </form>
                            </td>\n\t
                        </tr>\n\t\t
                        </table>";

                        $idProdutos = "";
                        $total = 0;
                        $linha = 0;
                        
                    }
                    //cabeçalho da tabela
                    $statusTotal = "enviado";
                    
                    $lista .= "<table class='tabelacompras' cellpadding=\"0\" cellspacing=\"0\">";
                    $lista .= "<div class=\"compras_frase\">";
                    if($item->tipoPessoa == "juridica")
                        $lista .= "Pedido Realizado por ".anchor("admin/cliente/perfil/$item->idCliente",$item->razaoSocial)."
                                (Usuário: ".anchor("admin/usuario/editar/$item->idCliente/$item->idUsuario",$item->unome).
                                ") às ".arruma_time($item->dataCadastro);
                    else
                        $lista .= "Pedido Realizado por $item->unome às".arruma_time($item->dataCadastro);
                    $lista .= "</div>";
                    $lista .= "<tr>
                        <th width=\"200\">Nome</th>
                        <th width=\"50\">Qte.</th>
                        <th width=\"100\">Preço Unitário R$</th>
                        <th width=\"100\">Total</th>
                        <th width=\"70\">Definir Status</th>
                    </tr>";
                }
                //meio da tabela
                if ($linha == 0)
                    $lista .= "<tr class=\"impar\">\n\t\t";
                else
                    $lista .= "<tr>\n\t\t";
                $lista .= "<td>".anchor("fornecedor/f_produto/editar/".$item->idProduto,$item->nome)."</td>\n\t";
                $lista .= "<td>$item->quantidade</td>\n\t";
                $lista .= "<td>".preco_imprime($item->preco)."</td>\n\t";
                $lista .= "<td>".preco_imprime($item->preco*$item->quantidade)."</td>\n\t";
                $lista .= "<td><form action=\"".site_url("fornecedor/f_pedido/mudarStatus/$item->idPedido/$item->idProduto"). "\" method=\"post\">";

                if($item->status == "andamento"){
                    $lista.= form_dropdown("status", $options, $item->status, "onchange=\"this.form.submit();\"");
                    $statusTotal = "andamento";
                }
                elseif($item->status == "enviado"){
                    $lista.= form_dropdown("status", $options_enviado, $item->status);
                }

                $lista .="</form>
                    </td>\n\t
                    </tr>\n\t\t";

                $total = $total + $item->preco*$item->quantidade;

                if ($linha == 0 ) $linha = 1;
                else $linha = 0;

                $idProdutos .= $item->idProduto.".";
                $statusProdutos .= $item->status.".";

                $itemAntigo = $item->idPedido;

            }

            //fim da ultima tabela
            $lista.="<td>Total</td> <td></td> <td></td> <td>".preco_imprime($total)."</td>\n\t
                    <td><form action=\"".site_url("fornecedor/f_pedido/mudarStatus/$itemAntigo/fornecedor_0"). "\" method=\"post\">";
                $lista.= form_dropdown("status", $options_total, "0", "onchange=\"this.form.submit();\"");
                $lista .="<input type=\"hidden\" name=\"idProdutos\" value=\"$idProdutos\" />
                        </form>
                    </td>\n\t
                </tr>\n\t\t
                </table>";

            $vazio = false;

        else :
            $lista = "<tr>\n\t";
            $lista .= "<td colspan=\"3\">Você não tem pedidos.</td>\n";
            $lista .= "</tr>\n";
            $vazio = true;

        endif;
        
        $titulo = "Pedidos em Andamento";
        if($this->input->post("datamax")){
            if($this->input->post("datamin"))
                $titulo .= " de ".$this->input->post("datamin");
            $titulo .= " até ".$this->input->post("datamax");
        }
        elseif($this->input->post("datamin"))
                $titulo .= " de ".$this->input->post("datamin")." até Hoje";
        $dados = array(
            "titulo" => $titulo,
            "lista" => $lista,
            "mensagem" => $mensagem,
            "vazio" => $vazio
            );

        $main = array(
            "dados" => $dados,
            "link" => "fornecedor/f_pedido_andamento_view",
            );
        $this->Log->inserir(tipo_usuario(), id_tipo_usuario(), "listou", "pedido");
        $this->load->view("template",$main);
    }

    public function pedidos_finalizados($mensagem = "") {
        //mostra carrinho atual
        $pedidos = $this->Selects->getPedidoProdutosUsuarioFinalizadoByFornecedor($this->sessao->idFornecedor,
                timestamp_time($this->input->post("datamin")),timestamp_time($this->input->post("datamax")));
        if( $pedidos != false) :
            $lista = "";
            $itemAntigo = "";
            $total = 0;
            $linha = 0;
            $idProdutos = array();
            $statusTotal = "";

            foreach($pedidos->result() as $campo => $item) {
                if($item->idPedido != $itemAntigo){
                    if($campo != 0){
                        if ($linha == 0)
                            $lista .= "<tr class=\"impar\">\n\t\t";
                        else
                            $lista .= "<tr>\n\t\t";
                        $lista.="
                            <td>Total</td> <td></td> <td></td> <td>".preco_imprime($total)."</td>\n\t
                            </tr>\n\t\t
                            </table>";

                        $total = 0;
                        $linha = 0;
                    }
                    $lista .= "<table class='tabelacompras' cellpadding=\"0\" cellspacing=\"0\">";
                    $lista .= "<div class=\"compras_frase\">";
                    if($item->tipoPessoa == "juridica")
                        $lista .= "Pedido Realizado por ".anchor("admin/cliente/perfil/$item->idCliente",$item->razaoSocial)."
                                (Usuário: ".anchor("admin/usuario/editar/$item->idCliente/$item->idUsuario",$item->unome).
                                ") às ".arruma_time($item->dataCadastro);
                    else
                        $lista .= "Pedido Realizado por $item->unome às".arruma_time($item->dataCadastro);
                    $lista .= "</div>";
                    $lista .= "<tr>
                        <th width=\"200\">Nome</th>
                        <th width=\"50\">Qte.</th>
                        <th width=\"100\">Preço Unitário R$</th>
                        <th width=\"100\">Total</th>
                    </tr>";
                }

                if ($linha == 0)
                    $lista .= "<tr class=\"impar\">\n\t\t";
                else
                    $lista .= "<tr>\n\t\t";
                $lista .= "<td>".anchor("fornecedor/f_produto/editar/".$item->idProduto,$item->nome)."</td>\n\t";
                $lista .= "<td>$item->quantidade</td>\n\t";
                $lista .= "<td>".preco_imprime($item->preco)."</td>\n\t";
                $lista .= "<td>".preco_imprime($item->preco*$item->quantidade)."</td>\n\t";
                $lista .="</tr>\n\t\t";

                $total = $total + $item->preco*$item->quantidade;

                if ($linha == 0 ) $linha = 1;
                else $linha = 0;

                $idProdutos .= $item->idProduto.".";

                $itemAntigo = $item->idPedido;

            }
            $lista .= "<tr><td>Total</td> <td> <td> <td>".preco_imprime($total)."</td>\n\t";
            $lista .= "</tr>";
            $lista .= "</table>";
            $vazio = false;

        else :
            $lista = "<tr>\n\t";
            $lista .= "<td colspan=\"3\">Você não tem pedidos.</td>\n";
            $lista .= "</tr>\n";
            $lista .= "</table>\n";
            $vazio = true;

        endif;

        if($mensagem == "sucesso") $mensagem = "\nOperação realizada com Sucesso!\n";
        else $mensagem = "";

        $titulo = "Pedidos Finalizados";
        if($this->input->post("datamax")){
            if($this->input->post("datamin"))
                $titulo .= " de ".$this->input->post("datamin");
            $titulo .= " até ".$this->input->post("datamax");
        }
        elseif($this->input->post("datamin"))
                $titulo .= " de ".$this->input->post("datamin")." até Hoje";
        $dados = array(
            "titulo" => $titulo,
            "lista" => $lista,
            "mensagem" => $mensagem,
            "vazio" => $vazio
            );

        $main = array(
            "dados" => $dados,
            "link" => "fornecedor/f_pedido_andamento_view",
            );
        $this->load->view("template",$main);
    }

    public function mudarStatus($idPedido = "", $id = ""){

        if ($idPedido == "" || $id == "")
            show_404 ();
        //print_r( $this->input->post());
        $nome = explode("_", $id);
        //Se a primeira parte do nome do campo é fornecedor
        if($nome[0] == "fornecedor") {
            $produtos = explode(".", $this->input->post("idProdutos"));
            $statusProdutos = explode(".", $this->input->post("statusProdutos"));
            //print_r($produtos);
            for($i=0 ; $i < count($produtos) ; $i++ ){
                $idProduto = $produtos[$i];
                //insere a atualização do status
                $pedido_produto = $this->PedidoModel->getPedidoProduto($idPedido, $idProduto);
                //if($pedido_produto == false) show_error ("Este pedido n&atilde;o existe");
                $alteracao_status = array(
                    'idPedido' => $idPedido,
                    'idProduto' => $idProduto,
                    'status_antigo' => $statusProdutos[$i],
                    'status_novo' => $this->input->post('status')
                );
                $this->StatusModel->inserir($alteracao_status);

                $campos = array("status" => $this->input->post("status"));
                $this->PedidoModel->updatePedidoProduto($idPedido, $idProduto, $campos);
                $this->Log->inserir(tipo_usuario(), id_tipo_usuario(), "mudou status", "pedido_produto", $idPedido, $idProduto);
            
                $pedido_produto = "";
            }
        }
        else{
            $pedido_produto = $this->PedidoModel->getPedidoProduto($idPedido,$id);
            if($pedido_produto == false) show_error ("Este pedido n&atilde;o existe");
            $alteracao_status = array(
                    'idPedido' => $idPedido,
                    'idProduto' => $id,
                    'status_antigo' => $pedido_produto->status,
                    'status_novo' => $this->input->post('status')
                );
            $this->StatusModel->inserir($alteracao_status);

            $campos = array("status" => $this->input->post("status"));
            $this->PedidoModel->updatePedidoProduto($idPedido, $id, $campos);
            $this->Log->inserir(tipo_usuario(), id_tipo_usuario(), "mudou status", "pedido_produto", $idPedido, $id);
        }
        redirect("fornecedor/f_pedido/index/sucesso");
    }
}